[AWS Technical Support Note] วิธีรับมือกับข้อผิดพลาดเมื่อไม่ระบุ –region ในแต่ละสภาพแวดล้อมการดำเนินการผ่าน AWS CLI
ปัญหาที่เกิดขึ้น
เรารันคำสั่งของ AWS CLI ในหลากหลายสภาพแวดล้อม (สภาพแวดล้อมสำหรับการพัฒนา สภาพแวดล้อมสำหรับการทดสอบ) โดยรายละเอียดโครงสร้างสภาพแวดล้อม, เนื้อหาการตั้งค่าก็แทบจะเหมือนกัน แต่พอรันคำสั่งเดียวกันแล้วบางสภาพแวดล้อมที่ไม่ตั้งค่าพารามิเตอร์ --region
ก็จะเกิดข้อผิดพลาดขึ้นเป็นเพราะอะไร?
วิธีแก้ปัญหา
ตรวจสอบว่ามีการตั้งค่า default Region ไว้หรือไม่
ในการรันคำสั่งของ AWS CLI ตามปกติแล้วจำเป็นต้องมีการระบุ Region ด้วย
โดยวิธีการระบุ Region จะมีหลักๆอยู่ 3 วิธี โดยการระบุพารามิเตอร์ --region
ในคำสั่งก็เป็นหนึ่งในวิธีเหล่านั้น
1.ระบุพารามิเตอร์ --region
2.ระบุ Environment Variable AWS_DEFAULT_REGION
3.ระบุการตั้งค่า region
ในไฟล์การตั้งค่า
เนื่องจากการระบุ Region สามารถระบุได้หลายวิธีข้างต้น
ทำให้พารามิเตอร์ --region
ในแต่ละสภาพแวดล้อมอาจจะเปลี่ยนไปตามการระบุ Region ที่ต่างกันนั่นเอง
ด้วยเหตุนี้ การตรวจสอบสถานะการตั้งค่าของแต่ละสภาพแวดล้อมและการปรับเปลี่ยนวิธีการตั้งค่าจะช่วยแก้ไขปัญหาที่พารามิเตอร์ --region
เกิดการเปลี่ยนแปลงในแต่ละสภาพแวดล้อมได้
หากมีการระบุหลายๆวิธี (เช่น ระบุการตั้งค่า region
ในไฟล์การตั้งค่าฯ) ระบบจะเลือกใช้การตั้งค่า Region ของวิธีที่มีลำดับความสำคัญสูงก่อน
Configure the AWS CLI - AWS Command Line Interface (English)
(ระดับความสำคัญ:สูง)
1.ระบุพารามิเตอร์ --region
2.ระบุ Environment Variable AWS_DEFAULT_REGION
3.ระบุการตั้งค่า region
ในไฟล์การตั้งค่า
(ระดับความสำคัญ:ต่ำ)
วิธีตรวจสอบสถานะการตั้งค่า
หากต้องการตรวจสอบว่ามีการตั้งค่า region ในไฟล์การตั้งค่าหรือไม่ ให้รันคำสั่งนี้เพื่อทำการตรวจสอบ
# ในกรณีที่มีการตั้งค่า
$ aws configure get region
ap-northeast-1
$
# ในกรณีที่ไม่มีการตั้งค่า
$ aws configure get region
$
ข้อมูลอ้างอิง : Configuration and credential file settings - AWS Command Line Interface (English)
aws configure set
ใช้คำสั่ง aws configure set เพื่อตั้งค่าโครงสร้าง หรือ ข้อมูลสำหรับยืนยันตัวตน และระบุโปรไฟล์เพื่อดูหรือแก้ไขด้วยการตั้งค่า --profile
หากจะตรวจสอบว่ามีการระบุ Environment Variable AWS_DEFAULT_REGION
ไว้หรือไม่ ให้ตรวจสอบด้วยคำสั่งนี้
# windows os
echo %AWS_DEFAULT_REGION%
# Mac、Linux
echo ${AWS_DEFAULT_REGION}
※คล้ายกับกับกรณีของการตรวจสอบไฟล์ตั้งค่า หากไม่แสดงข้อมูลใดๆแสดงว่าไม่มีการตั้งค่า Region ใน Environment Variable
ข้อมูลอ้างอิง : Environment variables to configure the AWS CLI - AWS Command Line Interface (English)
บทความอ้างอิง
You must specify an AWS Region when using the AWS CLI, either explicitly or by setting a default Region.
-
Environment variables to configure the AWS CLI - AWS Command Line Interface (English)
-
Configuration and credential file settings - AWS Command Line Interface (English)
-
AWS CLI のコンフィグファイルと環境変数とコマンドラインオプションで指定できる内容をまとめて確認してみた | DevelopersIO (Japanese)
-
AWS CLI คืออะไร? ขั้นตอนและวิธีใช้สำหรับมือใหม่ | DevelopersIO